package com.zerdoor.dao;

import java.util.List;
import java.util.Map;

/**
 * 评价信息持久层
 *
 * Created by zhongjieyu on 2015/1/22.
 */
public interface ItemAppraiseDao {


    /**
     * 保存评价信息数据
     * @param param 数据集
     * @throws Exception
     */
    void addItemAppraise(Map param) throws Exception;


    /**
     * 根据合同ID查询双方ID，如果该合同是双方未确认状态就返回空
     * @param contractId 合同ID
     * @return
     * @throws Exception
     */
    Map findBothPartiesUserIdByContractId(String contractId) throws Exception;

    /**
     * 根据双方ID和合同ID查询评价信息，因为可以自己给自己评论所以返回LIST结果集
     * @param param
     * @return
     * @throws Exception
     */
    List<Map> findItemAppraiseByBothPartiesUserId(Map param) throws Exception;

    /**
     * 根据项目ID查询剩余评价数
     * @param itemId
     * @return
     * @throws Exception
     */
    int findSurplusAppraiseNumByItemId(String itemId) throws Exception;


    /**
     * 根据任务ID修改任务进度为完成
     * @param item_id
     * @throws Exception
     */
    void updateCurrentProgressByTaskId(String item_id) throws Exception;



    /********作品评价start**********/

    /**
     * 根据作品ID查询作品评价数据
     * @param param
     * @return
     * @throws Exception
     */
    List<Map<String,Object>> findWorksAppraiseByWorksId(Map<String, String> param) throws Exception;

    /**
     * 增加作品评价信息
     * @param param
     * @throws Exception
     */
    void addWorksAppraise(Map<String, String> param) throws Exception;

    /**
     * 根据用户ID和作品ID查询评价信息
     * @return
     * @throws Exception
     */
    Map findWorksAppraiseByUserId(Map<String, String> param) throws Exception;

    /**
     * 根据作品ID和用户ID查询该用户是否购买过该作品
     * @param param
     * @return
     * @throws Exception
     */
    String findOrderWorksByUserId(Map<String, String> param) throws Exception;
}
